An electronic component may perform one or more functions. For example, a microprocessor may perform arithmetic, logic, and control functions. As another example, a scanner may input the raw scanned data, normalize the raw scanned data, exclude data outside of the margins, and perform color correction. The electronic component may be divided into blocks, with each block performing one or more of the functions of the electronic component. For example, the microprocessor may be divided into blocks comprising an arithmetic block, a logic block, and a control block.
When divided into blocks, the blocks may interface with one another, allowing for the transfer of information from one block to another. One method to interface blocks is to use the main memory of the electronic component. Specifically, the main memory may act as a buffer between blocks, with one block transferring information to the main memory, and a second block accessing the transferred information from the main memory. This process allows for minimal storage inside the individual blocks, and allows for the main memory to handle the protocol interfacing between the blocks. However, using main memory to transfer information between blocks is typically large, complex, and expensive. It may also add latency and reduce throughput of the electronic component if all information must be handled by the main memory.
Another method for block interfacing uses bus structures with complex protocols. The bus structures enable the direct transfer of information from one block to another, typically using industry standards. However, the bus structures tend to be very complex, implementing a superset of interface requirements.
Still another method for block interfacing uses interfacing that is customized for specific blocks. This customized interfacing is simpler than industry-standard bus structures. However, the customized interfacing typically handles data and control information that is transferred between blocks separately. Specifically, the customized interfacing may use two separate busses, one to transfer the control information and a second to transfer the data information. Further, the customized interfacing may be difficult to apply generally without unduly customizing the interface. Accordingly, it would be advantageous to transfer data and control information between blocks in a simple and common manner.